package com.project.mapper;

import com.project.bean.Car;
import com.project.bean.ManBean;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface IManMapper {
    /**
     * 添加公民，同时记录添加公民id
     * @param man 公民对象
     */
    void addMan(ManBean man);

    /**
     * 添加汽车集合
     * @param manId 公民id
     * @param carList 汽车集合
     */
    void addCarList(@Param("manId") int manId,@Param("carList") List<Car> carList);

    /**
     * 级联删除，先删除公民拥有的汽车集合，再删除公民
     * @param id 公民id
     */
    void delManCasecade(int id);

    /**
     * 外键置空，先将公民拥有的汽车外键设置为null，再删除公民
     * @param id 公民id
     */
    void delManSetNull(int id);

    /**
     * 查询所有公民，并且统计每个公民拥有的汽车数量
     * @return 公民集合
     */
    List<ManBean> findAll();

    /**
     * 按id查询公民，同时查询该公民拥有的汽车集合
     * @param id 公民id
     * @return 公民对象
     */
    ManBean findById(int id);
}
